學員來信:「老師教得很好,我也都聽得懂,但感覺就是沒辦法運用自如...」
以下是我在補習班,這一期 Objective-C 的一位學員來信。那位學員有很強烈的心想學好程式設計,但由於工作需要常常加班,出席天數普普(約 2/3)。我課堂上是個「作業惡魔」,常常口頭禪似地念著「交作業、交作業、交作業」。他在我的「魔音穿腦」的威脅之下(笑),雖然常遲交,不過還是都有努力趕上。
最近 Objective-C 課程要結束了,我出了一題比較難的作業。全班同學都交了,也都做得不錯。該位同學是看了我的解答後,才勉強寫出來的。他有點沮喪,覺得自己很有心,上課也都聽得懂。為什麼程式設計就是學得「無法有一股得心應手的感覺呢?」我寫了一封稍微長一點的信回覆他,覺得內容應該對大家有幫助,所以就去除個人資訊後全文照登。希望給有心朝程式設計這條路邁進的朋友一個參考。
紀老師
===================
紀老師您好,
謝謝您的批改跟鼓勵,對我的信心有很大的幫助~
附上這次的作業。
因為我的工作是 XXX (恕略),所以這段期間比較忙碌,作業老是遲繳, 請見諒!
老師教授的內容我都聽得懂,但總還是覺得自己缺乏對整個程式設計概念的整體掌握
因此目前也不知問題何在以及如何問起....可能是疏於練習且沒有好好看老師推薦課外閱讀
函數的語法和運用我還很生疏,無法自己寫出來
這次作業是參考老師的解答寫的,寫完之後有稍為掌握一點點
明天還是又得請假,接下來3個星期就可正常去上課了,希望可以跟得上 .....
----------
紀老師答覆:
您好:
作業批改完了,您的分數是 4 分。
雖然程式碼很完美,但是有一些跟解答類似。為了公平起見,故並未給您滿分。但這不代表您不夠努力,事實上,我可以感受到您很想學會 Objective-C 的心情。從您一直肯按時交作業就可以感覺得到。因此,我仍然十分肯定!
我自己也有家庭,很能理解一邊工作、一邊照顧家庭、又得硬擠出時間,把我交代的功課做完那份所需的毅力。您覺得「缺乏對程式設計概念整體掌握」,根據我的經驗,只是欠缺大量的練習而已。程式設計並非一項「知識(Knowledge)」,像地理歷史那樣,聽懂就會的。反而比較像游泳、騎車一樣,是一項「技能(Skill)」。凡是技能,比起聽懂,大量的反覆自我練習才是重點。這好比你下定決心要學會游泳,你很認真看教練的每個動作,也都有看懂。但下水之後,就不是那麼回事。能游是能游,就是游得「不順」!這跟你說「都聽得懂,但就是缺乏對程式設計整體概念掌握」,背後是由相同原因引起的。
很多補習班老師可能教得不夠久,沒體認到程式設計是一項「技能」而不是「知識」這回事。所以拼了命在課堂講,但都不重視回家作業。我從 1989 年就開始教電腦,至今 23 年。深深體認到程式設計真的要學會,講師的講課並非重點,反而是學生大量的自我練習才是。所以你會感受到我像嘮叨的歐幾桑一樣,一直念著「交作業、交作業、交作業」,背後是有其意義的。
課堂上坐在你右手邊另一排的一位同學,叫 XXX (恕略)。他的「狠勁」我實在拜服。他真的去買了我說的教科書,然後把每章課外讀物後的「每一題」都做了。拜他所賜,我一天可以收到他三個作業,開課至今五週以來,他已經交了快 90 個作業了。每天被這樣的批改量,逼得我有點受不了。但我心裡升起一股「好啊!誰怕誰!」的微笑。以超高速把他寫來的作業,一題題當天改完送還。他來上課之前,也是完全不懂程式。但現在寫出來的程式碼,已經非常有大師的架子了。當然,他沒有家累,可以這麼做。一般人也不必做到像他那樣。只要做到 1/3 左右,我就保證可以學得很好。
舉這個例子,並非想讓你沮喪或是打擊你的信心。純粹是想告訴你,程式設計跟游泳一樣,沒啥訣竅,多練就對了。但多練之餘,要有「教練」在旁邊幫你糾正姿勢,否則練的是錯的也沒用。我就是擔任那個教練的職位。所以真的真的不要放棄!就算你畢業離開班上,有練習題我還是幫你改!很多同學都笑說「紀老師是『一次購買,終生服務』」。我也樂得改大家的作業。因為我很享受那種互動的過程。
多說了!講這麼多,無非是想激勵您不要放棄!加油!一定要趁著還有心學好程式設計,一鼓作氣大量練習把它學進脊椎裡。千萬不要抱著「三個月後,我再把講義拿回來慢慢看」的心態,沒一鼓作氣那樣就完了!「技能」類的東西有個好處,一旦學會,用球棒敲腦袋一輩子都不會忘記!所以很划算!我一定幫你!所以你也一定要幫你自己!等你不忙了,還願意重寫這一題的話,我鐵定幫你改!
紀老師